#ifndef C_ALGORITHM_LINK_STACK_H
#define C_ALGORITHM_LINK_STACK_H

#include <stdbool.h>

// 不完整类型cstack, 隐藏stack_t的定义
typedef struct stack_t *cstack;

cstack stack_create(void);

void stack_destory(cstack);

void stack_clear(cstack);

bool stack_is_empty(cstack);

bool stack_is_full(cstack);

// 只能接受指针类型的数据
bool stack_push(cstack s, void *);

// 只能接受指针类型的数据
void *stack_pop(cstack);

// 只能接受指针类型的数据
void *stack_peek(cstack);

#endif